/*
 * 版权所有 ( c ) 联想集团有限公司 2005-2009 保留所有权利。
 * 项目：	Lenovo Push Service
 * 文件名：	BaseSAXHander.java
 * 版本:    1.0
 * 描述：	
 * 作者：	刘兵召
 * 日期：	Jun 8, 2010 
 * 修改历史：
 * 【时间】		【修改者】	【修改内容】
 */
package com.feng.util.xml;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
 * 基类，通过SAX 解析xml方式由xml生成java对象的Handler类  
 * @author 
 *
 */
public abstract class PojoSAXHandler extends DefaultHandler{
	protected String currentTag;
	
	protected StringBuilder sbValue = new StringBuilder();
	
	@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		sbValue.append(ch, start, length);
	}
	
	@Override
	public void startElement(String uri, String localName, String name,
			Attributes attributes) throws SAXException {
		currentTag = name;
		sbValue.setLength(0);
	}
	
	@Override
	public void endElement(String uri, String localName, String name)
			throws SAXException {
		if(currentTag==null){
			return;
		}
		doElementEnd(sbValue.toString());
		currentTag = null;
	}
	/**
	 * 添加处理属性的抽象主法
	 * @param value 当前属性的值
	 */
	protected abstract void doElementEnd(String value);
}
